const expressJWT = require('express-jwt');
const secret = 'zgs_first_token'; // 密钥，防止篡改

// 验证--放到最前面的use
const verifyToken = expressJWT({
    secret: secret,
    algorithms: ['HS256'], // 要加才能对
    // requestProperty:'auth',//自定义获取的信息位置，默认验证通过req.user获取token信息
    credentialsRequired: false //是否允许无token请求
  }).unless({
    path: [
      '/api/user/login',
      '/api/user/register',
      "/api/user/userInfo",
      "/api/bookList",
      "/api/recommend",
      "/api/booklistContent",
      "/api/bookDetail",
      "/api/commodityList",
      "/api/commodity",
      "/api/category",
      "/api/cateSearch",
      "/api/sellerInfo",
      "/api/search",
      "/api/searchbyisbn"
    ] //除了这个地址，其他的URL都需要验证
  });


// 失败处理--放到最后一个app.use()
const errorToken = (err, req, res, next) => {
  if (err.name === 'UnauthorizedError') { 
    console.log(err)
    res.status(401).send({errCode:'1',msg:"登录过期"}) //返回失败信息
  }
};

module.exports = {
  verifyToken,
  errorToken
};

